Motion controller having sliding mode controller

ABSTRACT

A motion controller for maintaining a controlled system on a switching hyperplane regardless of the magnitude of disturbance. The motion controller includes a target position generator, a sliding mode controller, a disturbance observer and a state observer. The target observer generates a target position to the sliding mode controller based on position and velocity data. The state observer estimates the state of the controlled system and provides the state to the sliding mode controller. And, the disturbance observer provides an estimated disturbance to the sliding mode control. The sliding mode controller generates a control input to the controlled system with the nonlinear component set to equal the negative estimated disturbance and the linear component based on the estimated state and target position.

FIELD OF THE INVENTION

[0001] The present invention relates to a motion controller for controlling a servomotor which moves a movable member. In particular, the invention relates to a motion controller-having a sliding mode controller.

BACKGROUND OF THE INVENTION

[0002] A machine tool removes workpiece material by cutting, grinding, lathe turning, polishing, or electric discharge machining. The modern machine tool is provided with a computerized numerical controller (“CNC”) and a motion controller. The CNC interprets a numeric control program (“NC program”) and generates position data, velocity data and data indicative of the other state values. The CNC is equipped with an operation panel and a display device as a human interface, and has various functions which enable an operator to run a machine tool. The motion controller controls a servomotor so as to drive a movable member in a desired direction at a desired velocity and stop it at a desired position. The motion controller receives position data and velocity data from the CNC and calculates acceleration, compensation such as pitch error compensation, feedforward control, feedback control and determines a tool path which it supplies as a control signal to the servomotor.

[0003] Attempts to apply a sliding mode control to the servo system for machine tools have been made, and improved positioning accuracy is expected. Recently, a linear motor driven machine tool has become common. As it has no transmission for transmitting a drive force of a rotary servomotor to a movable member, backlash is eliminated. Therefore, the sliding mode control method particularly suits the linear motor driven machine tool and good performance results which offset the increased design cost are expected.

[0004] The sliding mode control is applicable to a discontinuously changing nonlinear system, a variable parameter system and a system having uncertain disturbances. In general, a sliding mode controller is constructed as a variable structure, proportional-integral controller. The sliding mode controller ensures robustness against modeling errors and uncertain disturbances by the switching of the control input which is provided to the controlled system. In the sliding mode controller, the control input is usually divided into a linear control input and a nonlinear control input. The linear control input keeps the state of the controlled system on a switching hyperplane while the nonlinear control input forces the state of the controlled system to remain on the switching hyperplane in the presence of modeling errors and uncertain disturbances. The designer of the sliding mode controller must set the switching gain a priori according to the expected maximum of the uncertain disturbance so that the disturbance can be canceled by the nonlinear control input. If the switching gain is set to an unduly small value, the state of the controlled system may not be maintained on a switching hyperplane. Additionally, an excessively large switching gain is likely to result in undesirable “chattering” behavior.

[0005] Therefore, there is a need to provide a motion controller with a sliding mode controller in which the state of the controlled system can be maintained on the switching hyperplane regardless of the magnitude of the disturbance.

SUMMARY OF THE INVENTION

[0006] The present invention relates to a motion controller with a sliding mode controller for maintaining a controlled system on the switching hyperplane.

[0007] According to one aspect of the present invention, the motion controller includes a sliding mode controller for providing a control input to the servomotor with the control input having two components, a linear control input and a nonlinear control input; a state observer for estimating the state of the controlled system and for providing an estimated state {circumflex over (z)} of the controlled system to the sliding mode controller; and a disturbance observer for providing an estimated disturbance to the sliding mode controller, wherein the nonlinear control input is based on the estimated disturbance. In a preferred embodiment, the nonlinear control input equals the negative of the estimated disturbance.

[0008] Other and further objects and advantages of the present invention will be further understood and appreciated by those skilled in the art by reference to the following specification, claims and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009]FIG. 1 is a block diagram of a controlled system with a motion controller in accordance with the present invention.

[0010]FIG. 2 depicts the implementation of the motion controller of FIG. 1.

[0011]FIG. 3A is a graph of measured position θ versus time in which an expected disturbance occurs and the reaching condition is satisfied.

[0012]FIG. 3B is a graph of linear and nonlinear control inputs u_(l) and u_(nl) versus time in which an expected disturbance occurs and the reaching condition is satisfied.

[0013]FIG. 4A is a graph of measured position θ versus time in which the reaching condition is not satisfied by an unexpected disturbance.

[0014]FIG. 4B is a graph of linear-and nonlinear control inputs u_(l) and u_(nl) versus time in which the reaching condition is not satisfied by an unexpected disturbance.

[0015]FIG. 5A is a graph of measured position θ versus time in which the reaching condition is satisfied regardless of the magnitude of the disturbance.

[0016]FIG. 5B is a graph of linear and nonlinear control inputs u_(l) and u_(nl) versus time in which the reaching condition is satisfied regardless of the magnitude of the disturbance.

[0017]FIG. 6A is a graph of measured position θ versus time in which the reaching condition is satisfied regardless of the magnitude of the disturbance.

[0018]FIG. 6B is a graph of linear and nonlinear control inputs u_(l) and u_(nl) versus time in which the reaching condition is satisfied regardless of the magnitude of the disturbance.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0019]FIG. 1 depicts an implementation of the present invention including a CNC 1, a motion controller 2, a power amplifier 5, a controlled system 6 and a state variable detector 10.

[0020] A CNC 1 interprets a NC program and calculates desired position data P and velocity data V to a motion controller 2. The CNC 1 also provides data indicative of other state values such as a pitch error. The motion controller 2 determines a target position r based on desired position data P and velocity data V and revises the target position r so as to provide a control input u to a controlled system 6 through a power amplifier 5. In one embodiment, the control input u is a controlled current for a servomotor. The motion controller 2 comprises a target position generator 3, a sliding mode controller 4, a state observer 11 and a disturbance observer 12. In one embodiment, the controlled system 6 includes a movable member such as a work table, which is linearly reciprocable along one axis in a machine tool, and a rotary servomotor for driving the movable member. In a preferred embodiment, a position detector (not shown), such as a rotary encoder and a linear scale, is used for measuring the position of the servomotor. A state variable detector 10 receives the target position r and the control input u from the motion controller 2 and the measured position θ from the sensor. The state variable detector 10 provides the state variable U as an input to the motion controller 2.

[0021]FIG. 2 depicts the implementation of the motion controller 2. The controlled system 6 can be represented by the following equation of motion:

J{umlaut over (θ)}=Kt·Iq−d   (1)

[0022] where J is an inertia moment, θ is an angular position, Kt is a torque constant, Iq is a q-axis current and d is the disturbance. Based on equation (1), the state equation of the controlled system 6 is represented as follows: $\begin{matrix} \begin{matrix} \left\{ \begin{matrix} {\overset{.}{x} = {{A \cdot x} + {B \cdot u}}} \\ {{y = {C \cdot x}}\quad} \end{matrix} \right. \\ {{A = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}},{B = \begin{bmatrix} 0 \\ {K\quad {t/J}} \end{bmatrix}},{C = \begin{bmatrix} 1 & 0 \end{bmatrix}},{x = \begin{bmatrix} \theta \\ \overset{.}{\theta} \end{bmatrix}},{u = {I\quad q}}} \end{matrix} & (2) \end{matrix}$

[0023] The control input u, i.e., the q-axis current Iq is provided from the sliding mode controller 4. The sliding mode controller 4 constrains the state of the controlled system 6 on the switching hyperplane S by the switching of the control input U. Based on the state equation (2), a switching function σ in the sliding mode controller 4 is defined as follows: $\begin{matrix} \begin{matrix} \left\{ \begin{matrix} {\overset{.}{z} = {{A\quad {s \cdot x}} + {B\quad {s \cdot u}} + {E\quad {s \cdot r}} + {F\quad {s \cdot d}}}} \\ {{\sigma = {S \cdot z}}\quad} \end{matrix} \right. \\ {{{A\quad s} = \begin{bmatrix} 0 & {- C} \\ 0 & A \end{bmatrix}},{{B\quad s} = \begin{bmatrix} 0 \\ B \end{bmatrix}},{{E\quad s} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}},{{F\quad s} = \begin{bmatrix} 0 \\ F \end{bmatrix}},{z = \begin{bmatrix} v \\ x \end{bmatrix}},} \\ {S = \begin{bmatrix} S_{1} & S_{2} & S_{3} \end{bmatrix}} \end{matrix} & \quad & (3) \end{matrix}$

 {dot over (v)}=e=r−y

[0024] where z is the state of the controlled system, S is a hyperplane matrix, s is a Laplace transform variable or a Laplace differentiating operator, e is an error between the target position r and the measured position θ, and v is the count of accumulated pulses.

[0025] The design of the sliding mode controller 4 is governed by the following control law (4):

u=u _(l) +u _(nl)   (4)

[0026] where u_(l) is a linear control input and u_(nl) is a nonlinear control input accommodating a modeling error and an uncertain disturbance. The linear control input u_(l) keeps the state of the controlled system on the hyperplane S while the nonlinear control input u_(nl) forces the state of the controlled system to remain on the switching hyperplane S. The linear and nonlinear control inputs u_(l) and u_(nl) for the conventional sliding mode controller can be represented by the equations (5) and (6), resulting in the control input u given in equation (7):

u _(l)=−(S·Bs)⁻¹(S·As·z+S·Es·r)  (5) $\begin{matrix} {u_{n\quad l} = {{- \left( {{S \cdot B}\quad s} \right)^{- 1}}\left( {k \cdot \frac{\sigma}{{\sigma } + \eta}} \right)}} & (6) \\ {u = {{{- \left( {{S \cdot B}\quad s} \right)^{- 1}}\left( {{{S \cdot A}\quad {s \cdot z}} + {{S \cdot E}\quad {s \cdot r}}} \right)} - {{k\left( {{S \cdot B}\quad s} \right)}^{- 1} \cdot \frac{\sigma}{{\sigma } + \eta}}}} & (7) \end{matrix}$

[0027] Additionally, the Lyapunov function V is chosen as follows: $\begin{matrix} {V = {\frac{1}{2}\sigma^{2}}} & (8) \end{matrix}$

[0028] The reaching condition is given as follows:

{dot over (V)}<0   (9)

[0029] To satisfy the reaching condition, when z does not equal to zero, the time derivative of the Lyapunov function V (which is shown in equation (10) with the assumption that η equals to zero) must be negative definite:

{dot over (V)}=σ·S(As·z+Bs·u+Es·r+Fs·d)

{dot over (V)}=σ(S·As·z+S·Bs·u+S·Es·r+S·Fs·d) $\begin{matrix} \begin{matrix} {\overset{.}{V} = {\sigma\left( {{{S \cdot A}\quad {s \cdot z}} + {{S \cdot B}\quad s\left\{ {{{- \left( {{S \cdot B}\quad s} \right)^{- 1}}\left( {{{S \cdot A}\quad {s \cdot z}} + {{S \cdot E}\quad {s \cdot r}}} \right)} -} \right.}} \right.}} \\ {\left. {\left. \quad {{k\left( {{S \cdot B}\quad s} \right)}^{- 1} \cdot \frac{\sigma}{\sigma }} \right\} + {{S \cdot E}\quad {s \cdot r}} + {{S \cdot F}\quad {s \cdot d}}} \right)\quad} \\ {\overset{.}{V} = {\sigma \left( {{{S \cdot A}\quad {s \cdot z}} - {{S \cdot A}\quad {s \cdot z}} - {{S \cdot E}\quad {s \cdot r}} - {k\frac{\sigma}{\sigma }} + {{S \cdot E}\quad {s \cdot r}} + {{S \cdot F}\quad {s \cdot d}}} \right)}} \\ {\overset{.}{V} = {{{- k}{\sigma }} + {{\sigma \cdot S \cdot F}\quad {s \cdot d}}}} \end{matrix} & (10) \end{matrix}$

[0030] The switching gain k is set to satisfy the following condition (11):

k>|S·Fs·d _(max)   (11)

[0031] where d_(max) is the maximum of the disturbance.

[0032] If the switching gain k is appropriately set, the reaching condition in equation (9) is satisfied, and the state of the controlled system 6 is constrained on the switching hyperplane S.

[0033] Conventional sliding mode controllers set the switching gain k based on knowledge of the maximum disturbance d_(max). If the switching gain k is set too small, the state of the controlled system 6 may not be constrained on the switching hyperplane. If the switching gain k is set too large, unwanted “chattering” behavior may result. Thus, it is difficult to predict the maximum value d_(max) of the uncertain disturbance.

[0034] Thus, in a preferred embodiment of the present invention, the nonlinear control input u_(nl) is represented by the negative estimated disturbance −{circumflex over (d)}. Accordingly, the control input u is given as follows:

u=−(S·Bs)⁻¹(S·As·z+S·Es·r)−{circumflex over (d)}  (12)

[0035] Further, assuming that the estimated disturbance {circumflex over (d)} is almost equal to the actual disturbance d, equation (10) then becomes equation (13) below:

{dot over (V)}=σ( S·As·z+S·Bs{−(S·Bs)⁻¹(S·As·z+S·Es·r)−{circumflex over (d)}}+S·Es·r+S·Fs·d)

{dot over (V)}=σ( S·As·z−S·As·z−S·Es·r−S·Bs·{circumflex over (d)}+S·Es·r+S·Fs·d)

{dot over (V)}=σ(− S·Bs·d+S·Fs·d)

{dot over (V)}=σ(− S·Bs+S·Fs)d<0   (13)

[0036] Accordingly, from equation (13), with the time derivative of the Lyapunov function being less than zero, the reaching condition will be satisfied and the state of the controlled system will be maintained on the hyperplane S regardless of the magnitude of the disturbance d.

[0037] The sliding mode controller 4 receives the target position r from the target position generator 3. The target position generator 3 generates the target position r based on position data P and velocity data V from the CNC 1 and compensates for pitch error. The state z is observed by a state observer 11. The state observer 11 provides an estimated state {circumflex over (z)} to the sliding mode controller 4. The estimated state {circumflex over (z)} is defined by equation (14) as follows:

{circumflex over (z)}=[v {circumflex over (x)} {circumflex over ({dot over (x)})}]  (14)

[0038] where and v is the count of accumulated pulses, {circumflex over (x)} is an estimated position and {circumflex over ({dot over (x)})} is an estimated velocity. The estimated state {circumflex over (z)} includes modeling errors. In one embodiment, the state observer 11 estimates the state z based on a state variable U which is represented by equation (15) as follows:

U=[Iq θ r] ^(T)   (15)

[0039] where T represents a transposition. The state variable U is provided to the state observer 11 from the state variable detector 10 which receives the q-axis current Iq, the measured position θ and the target position r.

[0040] In a preferred embodiment, the sliding mode controller 4 uses the estimated disturbance {circumflex over (d)} to determine the nonlinear control input u_(nl). There are two inputs to the disturbance observer 12: one, the estimated velocity {circumflex over ({dot over (x)})} (which is a component of the estimated state {circumflex over (z)}) from the state observer 11, and two, the q-axis current Iq These two inputs are used for generating the estimated disturbance {circumflex over (d)}. The estimated disturbance {circumflex over (d)} includes parameter variations and disturbance. The q-axis current Iq is multiplied by the torque constant Kt in a multiplier 21. The estimated velocity {circumflex over ({dot over (x)})} is multiplied by J/T in multipliers 22 and 24. The character T represents a time constant of a low-pass filter 23. The sum of outputs of the multipliers 21 and 22 is supplied to the low-pass filter 23. An estimated disturbance torque {circumflex over (τ)} is obtained by subtracting an output of the multiplier 24 from an output of the low-pass filter 23. A multiplier 25 multiplies the estimated disturbance torque {circumflex over (τ)} by 1/Kt to generate the estimated disturbance {circumflex over (d)} which is a q-axis current corresponding to the estimated disturbance torque {circumflex over (τ)}.

[0041] Comparisons by simulation of the motion controller 2 using equation (12) with using the equation (7) are presented below.

[0042]FIGS. 3A, 3B, 4A and 4B show the simulation of the motion controller using equation (7) where S·Fs≈13500 is given and the switching gain k is set to 15000. In FIGS. 3A and 3B, the measured position θ and the control inputs u_(l) and u_(nl) are plotted when a disturbance torque corresponding to 1A is given. The reaching condition is satisfied as the switching gain k is set in equation (16) as follows:

15000=k>|S·Fs·d|=|113500*1|  (16)

[0043] In FIGS. 4A and 4B, the measured position θ and the control inputs u_(l) and u_(nl) are plotted with a disturbance torque of 10A. The reaching condition is not satisfied as an unexpected disturbance occurs as illustrated in equation (17) below:

15000=k<|S·Fs·d|=|13500*10|  (17)

[0044] As a result, an error between the target position r and the measured position θ remains.

[0045]FIGS. 5A, 5B, 6A and 6B show the simulation of the motion controller 2 using equation (12), where the nonlinear control input u_(nl) is replaced by the negative estimated disturbance −{circumflex over (d)}. In FIGS. 5A and 5B, the measured position θ and the control inputs u_(l) and u_(nl) are plotted with a disturbance torque corresponding to 10A. In FIGS. 6A and 6B, the measured position θ and the control inputs u_(l) and u_(nl) are plotted with a disturbance torque corresponding to 100A. As shown in FIGS. 5A, 5B, 6A and 6B, the disturbance is canceled by the nonlinear control input u_(nl) regardless of the magnitude of the disturbance d.

[0046] While the present invention has been described in terms of the preferred embodiments, other variations which are within the scope of the invention as defined in the claims will be apparent to those skilled in the art. 

1. A motion controller for controlling a servomotor to move a movable member to a desired position, comprising: a sliding mode controller for providing a control input o the servomotor wherein the control input includes a linear control input and a nonlinear control input; a state observer for estimating a state of a controlled system which includes the servomotor and the movable member, and for providing an estimated state of the controlled system to the sliding mode controller; and a disturbance for providing an estimated disturbance to the sliding mode control wherein the nonlinear control input is based on the estimated disturbance.
 2. The motion controller of claim 1 wherein the nonlinear control input equals the negative of the estimated disturbance.
 3. The motion controller of claim 1 wherein the control input is a controlled current for the servomotor.
 4. The motion controller of claim 1 wherein the estimated state is based on an estimated position and an estimated velocity.
 5. The motion controller of claim 4 wherein the estimated state is further based on a count of accumulated pulses.
 6. The motion controller of claim 1 wherein the state observer generates an estimated velocity.
 7. The motion controller of claim 6 wherein the disturbance observer receives the control input and the estimated velocity.
 8. The motion controller of claim 1 further comprising a target position generator for providing a target position generator for providing a target position to the sliding mode controller.
 9. The motion controller of claim 8 wherein an equation of motion of the controlled system is represented as follows: J{umlaut over (θ)}=Kt·Iq−d where J is an inertia moment, θ is an angular position and is the corresponding angular acceleration, Kt is a torque constant, Iq is a q-axis current and {umlaut over (θ)} is the disturbance; wherein a state equation of the controlled system is represented as follows: $\begin{matrix} \left\{ \begin{matrix} {\overset{.}{x} = {{A \cdot x} + {B \cdot u}}} \\ {{y = {C \cdot x}}\quad} \end{matrix} \right. \\ {{A = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}},{B = \begin{bmatrix} 0 \\ {K\quad {t/J}} \end{bmatrix}},{C = \begin{bmatrix} 1 & 0 \end{bmatrix}},{x = \begin{bmatrix} \theta \\ \overset{.}{\theta} \end{bmatrix}},{u = {I\quad q}}} \end{matrix}$

wherein a switching function a is represented as follows: $\begin{matrix} \begin{matrix} \left\{ \begin{matrix} {{\overset{.}{z} = {\underset{\_}{{A\quad {s \cdot x}} + {B\quad {s \cdot u}} + {E\quad {s \cdot r}} + {F\quad {s \cdot d}}}\quad \underset{\_}{\quad {{A\quad {s \cdot z}} + {B\quad {s \cdot u}} + {E\quad {s \cdot r}} + {F\quad {s \cdot d}}}}}}\quad} \\ {{\sigma = {S \cdot z}}\quad} \end{matrix} \right. \\ {{{A\quad s} = \begin{bmatrix} 0 & {- C} \\ 0 & A \end{bmatrix}},{{B\quad s} = \begin{bmatrix} 0 \\ B \end{bmatrix}},{{E\quad s} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}},{{F\quad s} = \begin{bmatrix} 0 \\ F \end{bmatrix}},{z = \begin{bmatrix} v \\ x \end{bmatrix}},} \\ {S = \begin{bmatrix} S_{1} & S_{2} & S_{3} \end{bmatrix}} \end{matrix} & \quad & \quad \end{matrix}$

{dot over (v)}=e=r−y where z is a state of the controlled system, S is a hyperplane matrix, e is an error between the target position r and the measured position θ, and v is the count of accumulated pulses; and wherein the linear control input u_(l) is represented as follows: u _(l)=−(S·Bs)⁻¹(S·As·z+S·Es·r)
 10. The motion controller of claim 8 further comprising a position detector for generating a measured position; and a state variable detector for receiving the target position, the control input and the measured position, and wherein the state variable detector generates a state variable as an input to the state observer.
 11. The motion controller of claim 8 further comprising a computerized numerical controller and a numerical control program, wherein the computerized numerical controller interprets the numerical control program and calculates a desired position and a desired velocity of the controlled system.
 12. A method of controlling a servomotor to move a movable member to a desired position, comprising: providing a control input from a sliding mode controller to the servomotor, wherein the control input includes a linear control input and a nonlinear control input; determining an estimated state of a controlled system which includes the servomotor and the movable member; providing the estimated state to the sliding mode controller; generating an estimated disturbance and providing the estimated disturbance to the sliding mode control; and equating the nonlinear control input to the negative of the estimated disturbance.
 13. The method of claim 12 wherein the control input is a controlled current for the servomotor.
 14. The method of claim 12 wherein the estimated state is based on an estimated position and an estimated velocity.
 15. The method of claim 14 wherein the estimated state is further based on a count of accumulated pulses.
 16. The method of claim 12 further comprising a state observer generating an estimated velocity.
 17. The method of claim 16 further comprising a disturbance observer receiving the control input and the estimated velocity.
 18. The method of claim 12 further comprising providing a target position to the sliding mode controller.
 19. The motion controller of claim 18 further comprising calculating a desired position and a desired velocity of the controlled system. 